// pages/reciteWord/reciteWord.js
import { word } from "../../server/word";


Page({

    /**
     * 页面的初始数据
     */
    data: {
        word: {
            has: false,               // 用于标记当前是否有单词
            id: 0,                    // 用于标记当前单词的id
            word: "加载中。。。",      // 用于标记当前单词
            meaningList: [],          // 用于标记当前单词的含义列表
            exampleSentenceList: [],  // 用于标记当前单词的例句
        },
        show_word_flag: false,        // 用于标记是否展示单词信息
        allWord: [],                  // 用于标记所有单词
        localProgress: [],            // 当前背诵进度
        miniBoxIsshow: false,         // 是否显示提示小窗口
    },

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad(options) {
        // 获取一些单词用来待背
        this.getAnyWord();
    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady() {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow() {

    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide() {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload() {
        console.log('监听页面卸载', this.data.localProgress);
        // 此处要将用户的背诵进度保存到服务端
        word.saveUserProgress(this.data.localProgress);
    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh() {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom() {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage() {

    },

    /*
      * 返回原页面的函数
      */
    returnMainPage() {
        wx.navigateBack({ delta: 1 });
    },

    /*
     * 获取一些单词用来待背
     */
    getAnyWord() {
        let count = wx.getStorageSync('wordCount') || 10;
        word.getAnyWord(count).then((res) => {
            // 准备第一个单词
            let word = this.data.word;
            let firstWord = res.data.wordList[0];
            word.has = true;
            word.id = firstWord.id;
            word.word = firstWord.word;
            word.meaningList = firstWord.meaningList;
            word.exampleSentenceList = firstWord.exampleSentenceList;
            // 渲染到页面
            this.setData({
                allWord: res.data.wordList,
                word
            });
        }).catch((err) => {
            wx.showToast({
                title: '请检查网络连接',
                icon: 'none',
                duration: 1000
            });
        });
    },

    /*
     * 下一个单词
     */
    nextWord(e) {
        let level = e.currentTarget.dataset.level;
        let tmp = {
            id: this.data.word.id,
            level: level
        };
        // 刷新背诵进度
        let localProgress = this.data.localProgress;
        localProgress.push(tmp);
        // 刷新下一个单词
        let wordId = this.data.word.id;
        let index;
        for (let i = 0; i < this.data.allWord.length; i++) {
            let item = this.data.allWord[i];
            if (wordId === item.id) {
                // 找到下一个单词的下标
                index = i + 1;
                break;
            }
        }
        if (index === this.data.allWord.length) {
            // 已经完成了所有单词
            this.showFinishTip();
            this.setData({
                localProgress
            });
            return ;
        } else {
            // 刷新下一个单词
            let word = this.data.allWord[index];
            word.has = true;
            this.setData({
                localProgress,
                word,
                show_word_flag: false
            });
            console.log(localProgress);
        }
    },

    /*
     * 展示单词信息
     */
    showWordInfo() {
        if (this.data.word.has) {
            this.setData({
                show_word_flag: true
            });
        }
    },

    /*
     * 关闭展示单词信息
     */
    closeShowWordInfo() {
        this.setData({
            show_word_flag: false
        });
    },


    /*
     * 提示本次学习已完结
     */
    showFinishTip() {
        this.setData({
            miniBoxIsshow: true
        });
    }
})